ctfshow 您所在的位置:网站首页 misc cartoons ctfshow

ctfshow

2023-12-10 20:01| 来源: 网络整理| 查看: 265

前言

废物web狗只会web,结果就是比赛的时候web一道不会,其他方向也是一点也不会,菜死我了呜呜呜要开始学习一下MISC,跟着八神的MISC入门来慢慢学习,整篇文章可能不会有自己独立解出的题目(小白落泪),暂时只能跟着网上师傅们的WP慢慢的来学习MISC的图片篇中的各种隐写姿势,但是MISC的学习只是真的课余了,主要还是去学习web,大概会1-2天做1-2题,这样慢慢的学习,相信日积月累下去,自己的MISC也可以成长起来。

misc1

图片的内容就是flag,利用一下QQ图片的那个提取图片中的文字,就可以免于手打了。

misc2

得到的是txt文件,主要还是看文件头,可以记事本直接打开,看到这个: 在这里插入图片描述 这个塒NG开头就是png文件了,也可以winhex打开: 在这里插入图片描述 可以看到PNG的文件头,把.txt改成.png就可以打开图片了,图片内容就是flag。

从别的师傅那里看到了用python获得图片中文字的方法:

import pytesseract from PIL import Image pytesseract.pytesseract.tesseract_cmd = r'D:\应用\Tesseract-OCR\tesseract.exe' tessdata_dir_config = r'--tessdata-dir "D:\应用\Tesseract-OCR\tessdata"' image=Image.open(r"D:\this_is_feng\CTF\MISC\ctfshow_misc入门\misc2\misc2.png") code = pytesseract.image_to_string(image, config=tessdata_dir_config) print(code)

关于pytesseract,可以参考这个: Python3使用 pytesseract 进行图片识别 在这里插入图片描述 学到了,学到了。

misc3

是bpg图片,正常不能打开,需要使用能查看bpg图片的软件打开,进行下载: bpg

然后命令行使用即可。

./bpgview.exe D:\this_is_feng\CTF\MISC\ctfshow_misc入门\misc3\misc3.bpg misc4

这题看了第一个图片的头是png,就把所有的图片后缀都改成png,然后把每个图片中的内容拼接出来就是flag。 但是看了别的师傅的WP,其实这样并不太对,因为真正的只有第一个图片的png,其他的几个txt都不是png图片,网上查了一下:

JPEG 文件头:FF D8 FF      文件尾:FF D9

TGA 未压缩的前4字节 00 00 02 00 RLE压缩的前5字节 00 00 10 00 00

PNG

文件头:89 50 4E 47 0D 0A 1A 0A     文件尾:AE 42 60 82

GIF

文件头:47 49 46 38 39(37) 61     文件尾:00 3B

BMP

文件头:42 4D 文件头标识(2 bytes) 42(B) 4D(M)

TIFF (tif)

文件头:49 49 2A 00

ico

文件头:00 00 01 00

Adobe Photoshop (psd)

文件头:38 42 50 53

所以第二个是jpg,第三个是bmp,第四个是gif,第五个是tif,第六个是webp文件。

misc5

做出来了我青结,虽然是最简单的misc。。。。 用winhex打开图片搜索ctfshow{,在最后找到flag。

misc6

同上

misc7

提示是:

flag在图片文件信息中。

我以为就是右键属性,藏在这里,但是发现没有: 在这里插入图片描述 winhex打开,搜索直接找到了flag。看了别的师傅的wp:

直接右键查看属性是常用的方法,不过获取不到图片的全部文件信息,也得不到这题的flag

图虫EXIF查看器

不过这玩意还是看不到flag,只是信息比较全罢了,不过先收藏着,以后或许用得到。

misc8

flag在图片文件中图片文件中。

没太懂这提示是什么意思,看了一下WP,是图片中还隐写了其他图片: 在这里插入图片描述 可以使用binwalk或者foremost,参考文章: MISC中图片隐藏文件分离 在这里插入图片描述 再去output目录里面去看分离出来的所有文件,有一张打开就可以看到flag,再转文字即可。 学到了学到了,binwalk和foremost这两个还要再学习学习,熟练一下。

misc9

提示在图片块里,师傅们说是也就是数据块。但是其实这题直接winhex打开搜索也可以直接发现flag。 在这里插入图片描述 用010Editor看一下的话,这个 chunk估计就是所谓的数据块了。在这里插入图片描述

misc10

知识盲区,提示flag在图片数据里。图片数据又是个什么鬼。。。。 查了一下。在这里插入图片描述

用binwalk看一下,发现有2个Zlib compressed data。 Binwalk工具的详细使用说明 使用binwalk -e来提取一下文件。 在这里插入图片描述 打开第一个文件就可以得到flag。 八神关于原理的解释: 在这里插入图片描述 学到了,学到了。

misc11

又学到新东西了,提示是:

flag在另一张图里。

拿010 Editor打开看一下,发现和上一题一样有2个IDAT块,我想既然是另一张图,以为还是之前那样,把IDAT块取出来然后解压就可以得到另一张图片了,但是发现没有。。。 看了一下别的师傅的WP,这题原来是要删除第一个IDAT块,这样得到的新的图片就可以得到flag了。

删除IDAT块比较方便的是使用tweakpng这个工具: Tweakpng

只需要右击第一个IDAT块,然后delete就行了。

misc12

做法同上,删掉前8个IDAT数据块就可以了。

misc13

flag位置在图片末尾。

我一开始以为是图片的IEND块有问题,但是改了发现还是没flag。。。。 看了一下WP,原来是图片末尾有这么一块: 在这里插入图片描述

可以看到c t f s h o w,隔一个字符取一个,写一个脚本跑出来:

a="631A74B96685738668AA6F4B77B07B216114655336A5655433346578612534DD38EF66AB35103195381F628237BA6545347C3254647E373A64E465F136FA66F5341E3107321D665438F1333239E9616C7D" flag="" for i in range(0,len(a),4): hexStr=a[i:i+2] flag+=chr(int("0x"+hexStr,16)) print(flag)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有